#ifndef GML__DEQUE_H
#define GML__DEQUE_H

#include <stdbool.h>
#include <stddef.h>

typedef struct DequeIterator {
	int **node_;
	int *first_;
	int *last_;
	int *current_;
} DequeIterator;

int *dequeIteratorData(DequeIterator *_this);

const int *dequeIteratorDataConst(const DequeIterator *_this);

DequeIterator *dequeIteratorIncrease(DequeIterator *_this);

DequeIterator dequeIteratorIncreaseOne(DequeIterator *_this);

DequeIterator *dequeIteratorDecrease(DequeIterator *_this);

DequeIterator dequeIteratorDecreaseOne(DequeIterator *_this);

#endif // GML__DEQUE_H
